﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CalculadoraEstFinanc
{
    public partial class frmCalculadora : Form
    {
        public frmCalculadora()
        {
            InitializeComponent();
        }

        private void tabPage1_Click(object sender, EventArgs e)
        {

        }

        private void rbJurosSimples_CheckedChanged(object sender, EventArgs e)
        {
            txbCapital.Enabled = true;
            txbTaxa.Enabled = true;
            txbTempo.Enabled = true;
        }

        private void rbJurosCompostos_CheckedChanged(object sender, EventArgs e)
        {
            txbCapital.Enabled = true;
            txbTaxa.Enabled = true;
            txbTempo.Enabled = true;
        }

        private void rbDescontoRS_CheckedChanged(object sender, EventArgs e)
        {
            txbCapital.Enabled = true;
            txbTaxa.Enabled = true;
            txbTempo.Enabled = true;
        }

        private void rbDescontoCS_CheckedChanged(object sender, EventArgs e)
        {
            txbCapital.Enabled = true;
            txbTaxa.Enabled = true;
            txbTempo.Enabled = true;
        }

        private void rbTaxaNorminal_CheckedChanged(object sender, EventArgs e)
        {
            txbCapital.Enabled = false;
            txbTaxa.Enabled = true;
            txbTempo.Enabled = true;

            txbCapital.Text = Convert.ToString('0');
        }

        private void rbTaxaEfetiva_CheckedChanged(object sender, EventArgs e)
        {
            txbCapital.Enabled = false;
            txbTaxa.Enabled = true;
            txbTempo.Enabled = true;

            txbCapital.Text = Convert.ToString('0');
        }

        private void btnSairFinanc_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnCalcularFinac_Click(object sender, EventArgs e)
        {
            Financeira financ = new Financeira();

            try
            {
                double Capital = Convert.ToDouble(txbCapital.Text);
                double Tempo = Convert.ToDouble(txbTempo.Text);
                double Taxa = Convert.ToDouble(txbTaxa.Text);
                double Resultado;

                if (rbJurosSimples.Checked == true)
                {
                    Resultado = financ.calculaJurosSimples(Capital, Taxa, Tempo);
                }
                else if (rbJurosCompostos.Checked == true)
                {
                    Resultado = financ.calculaJurosCompostos(Capital, Taxa, Tempo);
                }
                else if (rbDescontoRS.Checked == true)
                {
                    Resultado = financ.calculaDescontoRacionalSimples(Capital, Taxa, Tempo); 
                }
                else if (rbDescontoCS.Checked == true)
                {
                    Resultado = financ.calculaDescontoComercialSimples(Capital, Taxa, Tempo); 
                }
                else if (rbTaxaNominal.Checked == true)
                {
                    Resultado = financ.calculaTaxaNominalJuros(Taxa, Tempo);
                }
                else if (rbTaxaEfetiva.Checked == true)
                {
                    Resultado = financ.calculaTaxaEfetivaJuros(Taxa, Tempo);
                }
                else
                {
                    Resultado = 0;
                }

                txbResultado.Text = Resultado.ToString();

            }
            catch (FormatException)
            {
                MessageBox.Show("Erro de Conversão de Valores");
            }

        }

        private void btnSairEstat_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void frmCalculadora_Load(object sender, EventArgs e)
        {
            rbJurosSimples.Checked = true;
            rbMediaAritmetica.Checked = true;
        }

        private void rbMediaAritmetica_CheckedChanged(object sender, EventArgs e)
        {
            lblPesos.Visible = false;
            txbPeso1.Visible = false;
            txbPeso2.Visible = false;
            txbPeso3.Visible = false;
            txbPeso4.Visible = false;
            txbPeso5.Visible = false;
        }

        private void rbMediaHarmonica_CheckedChanged(object sender, EventArgs e)
        {
            lblPesos.Visible = false;
            txbPeso1.Visible = false;
            txbPeso2.Visible = false;
            txbPeso3.Visible = false;
            txbPeso4.Visible = false;
            txbPeso5.Visible = false;
        }

        private void rbMediaGeometrica_CheckedChanged(object sender, EventArgs e)
        {
            lblPesos.Visible = false;
            txbPeso1.Visible = false;
            txbPeso2.Visible = false;
            txbPeso3.Visible = false;
            txbPeso4.Visible = false;
            txbPeso5.Visible = false;
        }

        private void rbMediaPonderada_CheckedChanged(object sender, EventArgs e)
        {
            lblPesos.Visible = true;
            txbPeso1.Visible = true;
            txbPeso2.Visible = true;
            txbPeso3.Visible = true;
            txbPeso4.Visible = true;
            txbPeso5.Visible = true;

            txbPeso1.Clear();
            txbPeso2.Clear();
            txbPeso3.Clear();
            txbPeso4.Clear();
            txbPeso5.Clear();
        }

        private void btnCalcularEstat_Click(object sender, EventArgs e)
        {
            Estatistica Est = new Estatistica();

            double Resultado;

            double valor1 = Convert.ToDouble(txbValor1.Text);
            double valor2 = Convert.ToDouble(txbValor2.Text);
            double valor3 = Convert.ToDouble(txbValor3.Text);
            double valor4 = Convert.ToDouble(txbValor4.Text);
            double valor5 = Convert.ToDouble(txbValor5.Text);

            if (rbMediaAritmetica.Checked == true)
            {
                Resultado = Est.calculaMediaAritmetica(valor1, valor2, valor3, valor4, valor5);
            }
            else if (rbMediaHarmonica.Checked == true)
            {
                Resultado = Est.calculaMediaHarmonica(valor1, valor2, valor3, valor4, valor5); 
            }
            else if (rbMediaGeometrica.Checked == true)
            { 
                Resultado = Est.calculaMediaGeometrica(valor1, valor2, valor3, valor4, valor5);
            }
            else if (rbMediaPonderada.Checked == true)
            {
                double peso1 = Convert.ToDouble(txbPeso1.Text);
                double peso2 = Convert.ToDouble(txbPeso2.Text);
                double peso3 = Convert.ToDouble(txbPeso3.Text);
                double peso4 = Convert.ToDouble(txbPeso4.Text);
                double peso5 = Convert.ToDouble(txbPeso5.Text);

                Resultado = Est.calculaMediaPonderada(valor1, valor2, valor3, valor4, valor5, peso1, peso2, peso3, peso4, peso5);
            
            }
            else
            {
                Resultado = 0;
            }

            txbResultadoEst.Text = Resultado.ToString();

        }
    }
}
